package com.wjw.java.oop.extends_;

/**
 * 方法的重写/覆盖：
 * 重写三要素：方法名相同,返回类型相同,参数列表相同
 * ---------------------------------------------------------
 * 子类中有一个方法和父类中的方法名相同,返回类型相同,参数列表相同,
 * 那么我们就说子类重写了父类的方法
 * ---------------------------------------------------------
 * 重写细节：
 * 1.必须遵守重写的三要素
 *
 * 2.子类方法的返回值类型和父类方法的返回值类型一致
 *   或父类的返回值类型是子类返回值类型的基类,如:
 *   父类返回Object,子类返回String(String extends Object),正确
 *
 * 3.子类返回不能缩写父类方法的访问权限,如:public > protected > default什么都不写 > private
 *   父类是public修饰的,子类使用protected ,错误
 * ---------------------------------------------------------
 */
public class MethodOverride {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.say();
    }
}
class Animal{
    public void say(){
        System.out.println("动物在嘶吼...");
    }
}
class Dog extends Animal{
    //Dog是Animal的子类
    //重写了父类中的say()方法
    public void say(){
        System.out.println("小狗汪汪叫...");
    }
}